A processing system network is a combination of two or more independent nodes, for example, an independent processing system or another processing system network, which are capable of conversing with each other over a communications path or link. The conversation between the nodes involves the transfer of data packets which are a collection of related data items. The conversation may concern access to data files, applications or other information, or may consist of a request by one node to borrow one or more of another node's resources. Resources, for example, may include database files, peripheral devices, such as printers, or additional processing power.
Integrated networks are the emerging model for network design. In an integrated network, data packets are intelligently multiplexed between constant and variable bit-rate and bursty sources. This provides individual nodal connections with quality of service guarantees in one of two classes. In the first class, each node regulates its own traffic, fitting its data transmission rate within a particular behavioral range, and receiving in exchange certain network performance guarantees. Network performance guarantees may include,, for example, a minimum guarantee of bandwidth along a communications path, or a maximum bound on the time duration during which a data packet within an existing communication may be delayed.
The second class, which is referred to as "reservationless", is very useful for nodes incapable of describing their expected data transmission behavior. Such nodes typically support bursty or unpredictable data transmission rates. In the Second class, nodes do not specify a data transmission rate, nor a bound, and in return are not accorded network performance guarantees, These nodes must therefore adapt to changing network conditions to achieve their desired data transfer goals. Such adaption includes employing buffering, the use of a storage device to compensate for a difference in rate of data flow when transferring data from one node to another, and congestion control strategies, the use of both data transmission schedulers at queuing points and data flow control protocols at traffic sources. Conventional buffering and congestion control strategies however are either inefficient, as they tend to under utilize available transmission bandwidth by being overly conservative, or impractical for public data networks as they require individual nodes to actively cooperate with the network in congestion control. These strategies are also complicated and expensive, requiring the network to supply status information to each of the individual nodes, which the nodes use to adjust their data transmission rate.
Thus, inefficiencies, expenses and complications result because conventional approaches fail to appreciate the complex scheduling requirements inherent to reservationless data transmission and source node behavior, and remain an obstacle to realizing complete integrated network functionality. In particular, consider initializing a node for reservationless data transmission where it is desirable to quickly reach a data transmission rate corresponding to an optimal set point, in other words, where associated data buffers, maintaining data packets to be transmitted, are neither overflowing nor under-flowing. A common approach is to begin operating at an initial data transmission rate, generally chosen ad hoc, and to increase the transmission rate linearly until the optimal set point is reached. This is a poor approach when, for example, the initial data transmission rate chosen is 10, the linear increase rate is one, and the optimal set point is 200, requiring an additional 190 round-trip data transmissions before the node transmits at its optimal rate. Worse, the implicit assumption is that the optimal set point does not change, which in some schemes is not correct. In the situation in which the optimal point changes frequently and dramatically, the node may never transmit at a current optimal set point.
Alternatively, assume that a reservationless system is already transmitting data packets at an optimal rate. The system encounters some arbitrary or unforeseen event causing the loss of a transmitted data packet. A common approach is to discover the data packet loss through a timer. The expiration of which causes the retransmission of the outstanding data packet or packets. The timer generally begins counting when the data packet is transmitted and ends either upon receipt of the data packet by the destination node or upon the timer exceeding some predetermined time period. If the time period chosen is too small, numerous unnecessary retransmissions will occur, resulting in network congestion. Conversely, if the time period is too large, long pauses will result and the available data transmission bandwidth will be wasted. Further, and fundamentally, the approach treats data packet loss as part of the reservationless flow control, instead of the loss of the data packet as part of error control so that the transmission rate is drastically decreased in response thereto.